//
//  WBDBManager.h
//  WeatherBar
//
//  Created by Bert on 2024/6/7.
//

#import <Foundation/Foundation.h>
#import <BGFMDB.h>

NS_ASSUME_NONNULL_BEGIN

@interface WBDBManager : NSObject
/// 获取当前账户的数据库名称
+ (NSString *)getCurrentAccounDBName;
/// 新建或打开数据库 传入MemberId
+ (BOOL)openOrCreateDB:(NSString *)name;
/// 删除数据库 传入MemberId
+ (BOOL)deleteDB:(NSString *)name;

+ (BOOL)closeDB:(NSString *)name;

#pragma mark - 操作数据库
+ (NSArray *)getDateArray;
+ (BOOL)addDateToArray:(NSString *)dateStr;

+ (NSArray *)getSearchRecordArray;
+ (BOOL)addSearchRecordToArray:(NSString *)string;
+ (BOOL)deleteSearchRecordWithIndex:(NSInteger)index;

/** --------- 归档操作 ------------ */
/**
 *  把对象归档存到沙盒里Cache路径下
 */
+ (BOOL)saveObject:(id)object byFileName:(NSString*)fileName;

/**
 *  通过文件名从沙盒中找到归档的对象
 */
+ (id)getObjectByFileName:(NSString*)fileName;

/**
 *  根据文件名删除沙盒中的归档对象
 */
+ (void)removeObjectByFileName:(NSString*)fileName;

/**
 *  存储用户偏好设置 到 NSUserDefults
 */
+ (void)saveUserData:(id)data forKey:(NSString*)key;
+ (void)saveBool:(BOOL)value forKey:(NSString *)key;

/**
 *  读取用户偏好设置
 */
+ (id)readUserDataForKey:(NSString*)key;
+ (BOOL)readBoolForKey:(NSString *)key;

/**
 *  删除用户偏好设置
 */
+(void)removeUserDataForkey:(NSString*)key;

#pragma mark - 存在document下
// 拼接文件路径
+ (NSString *)documentAppendFilePath:(NSString *)fileName;
// 把对象归档存到沙盒里,文件名 == 路径最后一个文件夹的名）
+ (BOOL)saveInDocumentWithObject:(id)object byFileName:(NSString *)fileName;
// 通过文件名从沙盒中找到归档的对象
+ (id)getInDocumentWithObjectByFileName:(NSString*)fileName;

// 把对象归档存到沙盒里,（文件名 != 路径最后一个文件夹的名）
+ (BOOL)saveInDocumentWithObject:(id)object filePath:(NSString *)filePath fileName:(NSString *)fileName;
// 通过文件名从沙盒中找到归档的对象 文件名 != 路径最后一个文件夹的名）
+ (id)getObjectInDocumentWithFilePath:(NSString*)filePath fileName:(NSString*)fileName;
// 通过文件名从沙盒中找到归档的对象
+ (id)getObjectInDocumentWithFilePath:(NSString*)filePath;

// 根据文件名删除沙盒中的文件
+ (void)removeInDocumentWithObjectByFileName:(NSString *)fileName;
@end

NS_ASSUME_NONNULL_END
